#ifndef _INPUTMGR_H_
#define _INPUTMGR_H_


enum
{
	KEY_NONE,
	KEY_ESCAPE,
	KEY_TILDE,
	KEY_TAB,
	KEY_CAPS,
	KEY_SHIFT,
	KEY_CTRL,
	KEY_ALT,
	KEY_MINUS,
	KEY_EQUAL,
	KEY_LBRKT,
	KEY_RBRKT,
	KEY_BKSLH,
	KEY_COLON,
	KEY_QUOTE,
	KEY_SLASH,
	KEY_COMMA,
	KEY_PERIOD,
	KEY_PRTSCR,
	KEY_SCRLCK,
	KEY_PAUSE,
	KEY_ENTER,
	KEY_SPACE,
	KEY_BKSP,
	KEY_INS,
	KEY_DEL,
	KEY_HOME,
	KEY_END,
	KEY_PGUP,
	KEY_PGDN,
	KEY_UPARROW,
	KEY_DOWNARROW,
	KET_LEFTARROW,
	KEY_RIGHTARROW,
	KEY_KPNUMLOCK,
	KEY_KPDIV,
	KEY_KPMUL,
	KEY_KPMINUS,
	KEY_KPPLUS,
	KEY_KPENTER,
	KEY_KPDEL,
	KEY_KP0,
	KEY_KP1,
	KEY_KP2,
	KEY_KP3,
	KEY_KP4,
	KEY_KP5,
	KEY_KP6,
	KEY_KP7,
	KEY_KP8,
	KEY_KP9,

	KEY_F1,
	KEY_F2,
	KEY_F3,
	KEY_F4,
	KEY_F5,
	KEY_F6,
	KEY_F7,
	KEY_F8,
	KEY_F9,
	KEY_F10,
	KEY_F11,
	KEY_F12,

	KEY_0,
	KEY_1,
	KEY_2,
	KEY_3,
	KEY_4,
	KEY_5,
	KEY_6,
	KEY_7,
	KEY_8,
	KEY_9,

	KEY_A,
	KEY_B,
	KEY_C,
	KEY_D,
	KEY_E,
	KEY_F,
	KEY_G,
	KEY_H,
	KEY_I,
	KEY_J,
	KEY_K,
	KEY_L,
	KEY_M,
	KEY_N,
	KEY_O,
	KEY_P,
	KEY_Q,
	KEY_R,
	KEY_S,
	KEY_T,
	KEY_U,
	KEY_V,
	KEY_W,
	KEY_X,
	KEY_Y,
	KEY_Z,

	KEY_MOUSE1,
	KEY_MOUSE2,
	KEY_MOUSE3,
	KEY_MOUSE4,
	KEY_MOUSE5,
	KEY_MOUSE6,

	KEY_MWHEELUP,
	KEY_MWHEELDN,

	KEY_JOY1,
	KEY_JOY2,
	KEY_JOY3,
	KEY_JOY4,
	KEY_JOY5,
	KEY_JOY6,
	KEY_JOY7,
	KEY_JOY8,
	KEY_JOY9,
	KEY_JOY10,
	KEY_JOY11,
	KEY_JOY12,
	KEY_JOY13,
	KEY_JOY14,
	KEY_JOY15,
	KEY_JOY16,

	KEY_AUX1,
	KEY_AUX2,
	KEY_AUX3,
	KEY_AUX4,
	KEY_AUX5,
	KEY_AUX6,
	KEY_AUX7,
	KEY_AUX8,
	KEY_AUX9,
	KEY_AUX10,
	KEY_AUX11,
	KEY_AUX12,
	KEY_AUX13,
	KEY_AUX14,
	KEY_AUX15,
	KEY_AUX16,

	KEY_COUNT
};

enum
{
	AXIS_MOUSEX,
	AXIS_MOUSEY
};

class CInputMgr
{
private:
	static char* m_keyNames[KEY_COUNT];


public:
	CInputMgr();
	~CInputMgr();

	void KeyDown(int key);
	void KeyUp(int key);
	void Char(int chr);

	void SetAxisPos(int axis, float pos);
	float GetAxisPos(int axis);

	char* GetKeyName(int key);
	int GetKey(char* name);
};

#endif //_INPUTMGR_H_